import request from './axiosInstance';
const baseUrl = '/demand';
// 需求相关的API
const demandApi = {
  /**
   * 获取需求列表
   * @param {Object} params 查询参数
   * @returns {Promise}
   */
  getDemandList(params) {
    return request({
      url: baseUrl,
      method: 'get',
      params
    });
  },

  /**
   * 获取需求详情
   * @param {Number} id 需求ID
   * @returns {Promise}
   */
  getDemandDetail(id) {
    return request({
      url: `${baseUrl}/${id}`,  
      method: 'get'
    });
  },

  /**
   * 添加需求
   * @param {Object} data 需求数据
   * @returns {Promise}
   */
  addDemand(data) {
    return request({
      url: baseUrl,
      method: 'post',
      data
    });
  },

  /**
   * 更新需求
   * @param {Number} id 需求ID
   * @param {Object} data 需求数据
   * @returns {Promise}
   */
  updateDemand(id, data) {
    return request({
      url: `${baseUrl}/${id}`,
      method: 'put',
      data
    });
  },

  /**
   * 删除需求
   * @param {Number} id 需求ID
   * @returns {Promise}
   */
  deleteDemand(id) {
    return request({
      url: `${baseUrl}/${id}`,
      method: 'delete'
    });
  },

  /**
   * 审核需求
   * @param {Object} data 审核数据，包含id, status, auditRemark
   * @returns {Promise}
   */
  auditDemand(data) {
    return request({
      url: `${baseUrl}/${data.id}/audit`,
      method: 'put',
      data: {
        status: parseInt(data.status),
        auditRemark: data.auditRemark || ''
      }
    });
  },

  /**
   * 获取需求统计信息
   * @returns {Promise}
   */
  getDemandStats() {
    return request({
      url: `${baseUrl}/stats`,
      method: 'get'
    });
  },
  
  /**
   * 获取愿意接单的企业列表
   * @param {Number} demandId 需求ID
   * @returns {Promise}
   */
  getPotentialEnterprises(demandId) {
    return request({
      url: `${baseUrl}/${demandId}/potential-enterprises`,
      method: 'get'
    });
  },
  
  /**
   * 选择企业接单
   * @param {Number} demandId 需求ID
   * @param {Number} enterpriseId 企业ID
   * @returns {Promise}
   */
  selectEnterprise(demandId, enterpriseId) {
    return request({
      url: `${baseUrl}/${demandId}/select-enterprise`,
      method: 'post',
      data: {
        enterpriseId
      }
    });
  }
};

export default demandApi;